\hypertarget{group__gpio__api}{
\section{Gpio\_\-api}
\label{group__gpio__api}\index{Gpio\_\-api@{Gpio\_\-api}}
}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{group__gpio__api_ga9b98a0dc33dd7166a83fc09c59038e62}{GPIODirModeSet} (unsigned long ulPort, unsigned char ucPins, unsigned long ulPinIO)
\item 
unsigned long \hyperlink{group__gpio__api_ga8e9eba1df6f014523a4bfa725659ee83}{GPIODirModeGet} (unsigned long ulPort, unsigned char ucPin)
\item 
void \hyperlink{group__gpio__api_ga911b664c63439e0755db5ff2f18ce999}{GPIOIntTypeSet} (unsigned long ulPort, unsigned char ucPins, unsigned long ulIntType)
\item 
unsigned long \hyperlink{group__gpio__api_ga4ba21e120ff74e4aae8de58bf49aa683}{GPIOIntTypeGet} (unsigned long ulPort, unsigned char ucPin)
\item 
void \hyperlink{group__gpio__api_ga31f2d2250fea8c8727546e8c6d488579}{GPIOPadConfigSet} (unsigned long ulPort, unsigned char ucPins, unsigned long ulStrength, unsigned long ulPinType)
\item 
void \hyperlink{group__gpio__api_ga37d0b62f9df334202cdc0a1e91aa6450}{GPIOPadConfigGet} (unsigned long ulPort, unsigned char ucPin, unsigned long $\ast$pulStrength, unsigned long $\ast$pulPinType)
\item 
void \hyperlink{group__gpio__api_ga2e36f797627e0e969837e6d4d4295642}{GPIOPinIntEnable} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gae05d852b2639e559923e9f3273f2949e}{GPIOPinIntDisable} (unsigned long ulPort, unsigned char ucPins)
\item 
long \hyperlink{group__gpio__api_ga35516aba9a29777e4ed4fd106ab87cd9}{GPIOPinIntStatus} (unsigned long ulPort, tBoolean bMasked)
\item 
void \hyperlink{group__gpio__api_gab80552c450cf6a0f922981ce589c01f3}{GPIOPinIntClear} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga4f50842991768a3e688e0cb6961057fb}{GPIOPortIntRegister} (unsigned long ulPort, void($\ast$pfnIntHandler)(void))
\item 
void \hyperlink{group__gpio__api_gac06dcf1c431a9685d90cc655a9da5293}{GPIOPortIntUnregister} (unsigned long ulPort)
\item 
long \hyperlink{group__gpio__api_ga97225829b669d27fb53bf01e5771fb5b}{GPIOPinRead} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga15dcc4b2c51372da20787277e3c617ee}{GPIOPinWrite} (unsigned long ulPort, unsigned char ucPins, unsigned char ucVal)
\item 
void \hyperlink{group__gpio__api_gaabb4328a66fc0a25999df028a4f63a02}{GPIOPinTypeADC} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gadba1fb6bc3b52b65c7712a56bec2f7d3}{GPIOPinTypeCAN} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gacefd3ba2727a630ff050e470a4e907fd}{GPIOPinTypeComparator} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga8fc55e061457dbf75759927ffd9a1658}{GPIOPinTypeGPIOInput} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga9cc8ce67979d9a664631924d2c76c200}{GPIOPinTypeGPIOOutput} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gaa61f2a16bc997689df0b0d986f52a9a5}{GPIOPinTypeGPIOOutputOD} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga88ea8b5c16662271b193895303ec6cde}{GPIOPinTypeI2C} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gabaeb01ce7fbd0193aeeee0755929ea3a}{GPIOPinTypePWM} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gaf4d91fac42c6efd3a9fce8b50fc87d36}{GPIOPinTypeQEI} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga3c2922d6f70c115de388eec90abf5ace}{GPIOPinTypeSSI} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga35408a71b1bd133c27aa34191b3da369}{GPIOPinTypeTimer} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga9f154edbc4950ae73f29e15d48dc70da}{GPIOPinTypeUART} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gabe5d9214a89e0190c8978461ffb2df45}{GPIOPinTypeUSBDigital} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gade2487a4670bf881a1ee901ec2be8174}{GPIOPinTypeUSBAnalog} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_gaa917bfab3ec1625bc9023350dcd9feb3}{GPIOPinTypeI2S} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga6336f68c342ebcb1561bed73d97ff327}{GPIOPinTypeEthernetLED} (unsigned long ulPort, unsigned char ucPins)
\item 
void \hyperlink{group__gpio__api_ga5273dccba5cff302efcde934110c3ff1}{GPIOPinConfigure} (unsigned long ulPinConfig)
\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{group__gpio__api_ga8e9eba1df6f014523a4bfa725659ee83}{
\index{gpio\_\-api@{gpio\_\-api}!GPIODirModeGet@{GPIODirModeGet}}
\index{GPIODirModeGet@{GPIODirModeGet}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIODirModeGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long GPIODirModeGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPin}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga8e9eba1df6f014523a4bfa725659ee83}
Gets the direction and mode of a pin.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPin}]is the pin number.\end{DoxyParams}
This function gets the direction and control mode for a specified pin on the selected GPIO port. The pin can be configured as either an input or output under software control, or it can be under hardware control. The type of control and direction are returned as an enumerated data type.

\begin{DoxyReturn}{Returns}
Returns one of the enumerated data types described for \hyperlink{group__gpio__api_ga9b98a0dc33dd7166a83fc09c59038e62}{GPIODirModeSet()}. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga9b98a0dc33dd7166a83fc09c59038e62}{
\index{gpio\_\-api@{gpio\_\-api}!GPIODirModeSet@{GPIODirModeSet}}
\index{GPIODirModeSet@{GPIODirModeSet}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIODirModeSet}]{\setlength{\rightskip}{0pt plus 5cm}void GPIODirModeSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins, }
\item[{unsigned long}]{ ulPinIO}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga9b98a0dc33dd7166a83fc09c59038e62}
Sets the direction and mode of the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port \item[{\em ucPins}]is the bit-\/packed representation of the pin(s). \item[{\em ulPinIO}]is the pin direction and/or mode.\end{DoxyParams}
This function will set the specified pin(s) on the selected GPIO port as either an input or output under software control, or it will set the pin to be under hardware control.

The parameter {\itshape ulPinIO\/} is an enumerated data type that can be one of the following values:


\begin{DoxyItemize}
\item {\bfseries GPIO\_\-DIR\_\-MODE\_\-IN} 
\item {\bfseries GPIO\_\-DIR\_\-MODE\_\-OUT} 
\item {\bfseries GPIO\_\-DIR\_\-MODE\_\-HW} 
\end{DoxyItemize}

where {\bfseries GPIO\_\-DIR\_\-MODE\_\-IN} specifies that the pin will be programmed as a software controlled input, {\bfseries GPIO\_\-DIR\_\-MODE\_\-OUT} specifies that the pin will be programmed as a software controlled output, and {\bfseries GPIO\_\-DIR\_\-MODE\_\-HW} specifies that the pin will be placed under hardware control.

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
\hyperlink{group__gpio__api_ga31f2d2250fea8c8727546e8c6d488579}{GPIOPadConfigSet()} must also be used to configure the corresponding pad(s) in order for them to propagate the signal to/from the GPIO.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga4ba21e120ff74e4aae8de58bf49aa683}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOIntTypeGet@{GPIOIntTypeGet}}
\index{GPIOIntTypeGet@{GPIOIntTypeGet}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOIntTypeGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long GPIOIntTypeGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPin}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga4ba21e120ff74e4aae8de58bf49aa683}
Gets the interrupt type for a pin.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPin}]is the pin number.\end{DoxyParams}
This function gets the interrupt type for a specified pin on the selected GPIO port. The pin can be configured as a falling edge, rising edge, or both edge detected interrupt, or it can be configured as a low level or high level detected interrupt. The type of interrupt detection mechanism is returned as an enumerated data type.

\begin{DoxyReturn}{Returns}
Returns one of the enumerated data types described for \hyperlink{group__gpio__api_ga911b664c63439e0755db5ff2f18ce999}{GPIOIntTypeSet()}. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga911b664c63439e0755db5ff2f18ce999}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOIntTypeSet@{GPIOIntTypeSet}}
\index{GPIOIntTypeSet@{GPIOIntTypeSet}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOIntTypeSet}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOIntTypeSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins, }
\item[{unsigned long}]{ ulIntType}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga911b664c63439e0755db5ff2f18ce999}
Sets the interrupt type for the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s). \item[{\em ulIntType}]specifies the type of interrupt trigger mechanism.\end{DoxyParams}
This function sets up the various interrupt trigger mechanisms for the specified pin(s) on the selected GPIO port.

The parameter {\itshape ulIntType\/} is an enumerated data type that can be one of the following values:


\begin{DoxyItemize}
\item {\bfseries GPIO\_\-FALLING\_\-EDGE} 
\item {\bfseries GPIO\_\-RISING\_\-EDGE} 
\item {\bfseries GPIO\_\-BOTH\_\-EDGES} 
\item {\bfseries GPIO\_\-LOW\_\-LEVEL} 
\item {\bfseries GPIO\_\-HIGH\_\-LEVEL} 
\end{DoxyItemize}

where the different values describe the interrupt detection mechanism (edge or level) and the particular triggering event (falling, rising, or both edges for edge detect, low or high for level detect).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
In order to avoid any spurious interrupts, the user must ensure that the GPIO inputs remain stable for the duration of this function.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga37d0b62f9df334202cdc0a1e91aa6450}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPadConfigGet@{GPIOPadConfigGet}}
\index{GPIOPadConfigGet@{GPIOPadConfigGet}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPadConfigGet}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPadConfigGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPin, }
\item[{unsigned long $\ast$}]{ pulStrength, }
\item[{unsigned long $\ast$}]{ pulPinType}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga37d0b62f9df334202cdc0a1e91aa6450}
Gets the pad configuration for a pin.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPin}]is the pin number. \item[{\em pulStrength}]is a pointer to storage for the output drive strength. \item[{\em pulPinType}]is a pointer to storage for the output drive type.\end{DoxyParams}
This function gets the pad configuration for a specified pin on the selected GPIO port. The values returned in {\itshape pulStrength\/} and {\itshape pulPinType\/} correspond to the values used in \hyperlink{group__gpio__api_ga31f2d2250fea8c8727546e8c6d488579}{GPIOPadConfigSet()}. This function also works for pin(s) configured as input pin(s); however, the only meaningful data returned is whether the pin is terminated with a pull-\/up or down resistor.

\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga31f2d2250fea8c8727546e8c6d488579}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPadConfigSet@{GPIOPadConfigSet}}
\index{GPIOPadConfigSet@{GPIOPadConfigSet}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPadConfigSet}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPadConfigSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins, }
\item[{unsigned long}]{ ulStrength, }
\item[{unsigned long}]{ ulPinType}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga31f2d2250fea8c8727546e8c6d488579}
Sets the pad configuration for the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s). \item[{\em ulStrength}]specifies the output drive strength. \item[{\em ulPinType}]specifies the pin type.\end{DoxyParams}
This function sets the drive strength and type for the specified pin(s) on the selected GPIO port. For pin(s) configured as input ports, the pad is configured as requested, but the only real effect on the input is the configuration of the pull-\/up or pull-\/down termination.

The parameter {\itshape ulStrength\/} can be one of the following values:


\begin{DoxyItemize}
\item {\bfseries GPIO\_\-STRENGTH\_\-2MA} 
\item {\bfseries GPIO\_\-STRENGTH\_\-4MA} 
\item {\bfseries GPIO\_\-STRENGTH\_\-8MA} 
\item {\bfseries GPIO\_\-STRENGTH\_\-8MA\_\-SC} 
\end{DoxyItemize}

where {\bfseries GPIO\_\-STRENGTH\_\-xMA} specifies either 2, 4, or 8 mA output drive strength, and {\bfseries GPIO\_\-OUT\_\-STRENGTH\_\-8MA\_\-SC} specifies 8 mA output drive with slew control.

The parameter {\itshape ulPinType\/} can be one of the following values:


\begin{DoxyItemize}
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-STD} 
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-STD\_\-WPU} 
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-STD\_\-WPD} 
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-OD} 
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-OD\_\-WPU} 
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-OD\_\-WPD} 
\item {\bfseries GPIO\_\-PIN\_\-TYPE\_\-ANALOG} 
\end{DoxyItemize}

where {\bfseries GPIO\_\-PIN\_\-TYPE\_\-STD$\ast$} specifies a push-\/pull pin, {\bfseries GPIO\_\-PIN\_\-TYPE\_\-OD$\ast$} specifies an open-\/drain pin, {\bfseries $\ast$\_\-WPU} specifies a weak pull-\/up, {\bfseries $\ast$\_\-WPD} specifies a weak pull-\/down, and {\bfseries GPIO\_\-PIN\_\-TYPE\_\-ANALOG} specifies an analog input (for the comparators).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga5273dccba5cff302efcde934110c3ff1}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinConfigure@{GPIOPinConfigure}}
\index{GPIOPinConfigure@{GPIOPinConfigure}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinConfigure}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinConfigure (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPinConfig}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga5273dccba5cff302efcde934110c3ff1}
Configures the alternate function of a GPIO pin.


\begin{DoxyParams}{Parameters}
\item[{\em ulPinConfig}]is the pin configuration value, specified as one of the {\bfseries GPIO\_\-P}??\_\-??? values.\end{DoxyParams}
This function configures the pin mux that selects the peripheral function associated with a particular GPIO pin. Only one peripheral function at a time can be associated with a GPIO pin, and each peripheral function should only be associated with a single GPIO pin at a time (despite the fact that many of them can be associated with more than one GPIO pin).

\begin{DoxyNote}{Note}
This function is only valid on Tempest-\/class devices.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gab80552c450cf6a0f922981ce589c01f3}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinIntClear@{GPIOPinIntClear}}
\index{GPIOPinIntClear@{GPIOPinIntClear}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinIntClear}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinIntClear (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gab80552c450cf6a0f922981ce589c01f3}
Clears the interrupt for the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
Clears the interrupt for the specified pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
Since there is a write buffer in the Cortex-\/M3 processor, it may take several clock cycles before the interrupt source is actually cleared. Therefore, it is recommended that the interrupt source be cleared early in the interrupt handler (as opposed to the very last action) to avoid returning from the interrupt handler before the interrupt source is actually cleared. Failure to do so may result in the interrupt handler being immediately reentered (since NVIC still sees the interrupt source asserted).
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gae05d852b2639e559923e9f3273f2949e}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinIntDisable@{GPIOPinIntDisable}}
\index{GPIOPinIntDisable@{GPIOPinIntDisable}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinIntDisable}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinIntDisable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gae05d852b2639e559923e9f3273f2949e}
Disables interrupts for the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
Masks the interrupt for the specified pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga2e36f797627e0e969837e6d4d4295642}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinIntEnable@{GPIOPinIntEnable}}
\index{GPIOPinIntEnable@{GPIOPinIntEnable}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinIntEnable}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinIntEnable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga2e36f797627e0e969837e6d4d4295642}
Enables interrupts for the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
Unmasks the interrupt for the specified pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga35516aba9a29777e4ed4fd106ab87cd9}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinIntStatus@{GPIOPinIntStatus}}
\index{GPIOPinIntStatus@{GPIOPinIntStatus}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinIntStatus}]{\setlength{\rightskip}{0pt plus 5cm}long GPIOPinIntStatus (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{tBoolean}]{ bMasked}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga35516aba9a29777e4ed4fd106ab87cd9}
Gets interrupt status for the specified GPIO port.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em bMasked}]specifies whether masked or raw interrupt status is returned.\end{DoxyParams}
If {\itshape bMasked\/} is set as {\bfseries true}, then the masked interrupt status is returned; otherwise, the raw interrupt status will be returned.

\begin{DoxyReturn}{Returns}
Returns a bit-\/packed byte, where each bit that is set identifies an active masked or raw interrupt, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. Bits 31:8 should be ignored. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga97225829b669d27fb53bf01e5771fb5b}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinRead@{GPIOPinRead}}
\index{GPIOPinRead@{GPIOPinRead}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinRead}]{\setlength{\rightskip}{0pt plus 5cm}long GPIOPinRead (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga97225829b669d27fb53bf01e5771fb5b}
Reads the values present of the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The values at the specified pin(s) are read, as specified by {\itshape ucPins\/}. Values are returned for both input and output pin(s), and the value for pin(s) that are not specified by {\itshape ucPins\/} are set to 0.

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
Returns a bit-\/packed byte providing the state of the specified pin, where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. Any bit that is not specified by {\itshape ucPins\/} is returned as a 0. Bits 31:8 should be ignored. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gaabb4328a66fc0a25999df028a4f63a02}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeADC@{GPIOPinTypeADC}}
\index{GPIOPinTypeADC@{GPIOPinTypeADC}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeADC}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeADC (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gaabb4328a66fc0a25999df028a4f63a02}
Configures pin(s) for use as analog-\/to-\/digital converter inputs.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The analog-\/to-\/digital converter input pins must be properly configured to function correctly on DustDevil-\/class devices. This function provides the proper configuration for those pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into an ADC input; it only configures an ADC input pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gadba1fb6bc3b52b65c7712a56bec2f7d3}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeCAN@{GPIOPinTypeCAN}}
\index{GPIOPinTypeCAN@{GPIOPinTypeCAN}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeCAN}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeCAN (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gadba1fb6bc3b52b65c7712a56bec2f7d3}
Configures pin(s) for use as a CAN device.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The CAN pins must be properly configured for the CAN peripherals to function correctly. This function provides a typical configuration for those pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a CAN pin; it only configures a CAN pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gacefd3ba2727a630ff050e470a4e907fd}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeComparator@{GPIOPinTypeComparator}}
\index{GPIOPinTypeComparator@{GPIOPinTypeComparator}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeComparator}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeComparator (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gacefd3ba2727a630ff050e470a4e907fd}
Configures pin(s) for use as an analog comparator input.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The analog comparator input pins must be properly configured for the analog comparator to function correctly. This function provides the proper configuration for those pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into an analog comparator input; it only configures an analog comparator pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga6336f68c342ebcb1561bed73d97ff327}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeEthernetLED@{GPIOPinTypeEthernetLED}}
\index{GPIOPinTypeEthernetLED@{GPIOPinTypeEthernetLED}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeEthernetLED}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeEthernetLED (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga6336f68c342ebcb1561bed73d97ff327}
Configures pin(s) for use by the Ethernet peripheral as LED signals.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The Ethernet peripheral provides two signals that can be used to drive an LED (e.g. for link status/activity). This function provides a typical configuration for the pins.

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into an Ethernet LED pin; it only configures an Ethernet LED pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga8fc55e061457dbf75759927ffd9a1658}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeGPIOInput@{GPIOPinTypeGPIOInput}}
\index{GPIOPinTypeGPIOInput@{GPIOPinTypeGPIOInput}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeGPIOInput}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeGPIOInput (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga8fc55e061457dbf75759927ffd9a1658}
Configures pin(s) for use as GPIO inputs.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The GPIO pins must be properly configured in order to function correctly as GPIO inputs; this is especially true of Fury-\/class devices where the digital input enable is turned off by default. This function provides the proper configuration for those pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga9cc8ce67979d9a664631924d2c76c200}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeGPIOOutput@{GPIOPinTypeGPIOOutput}}
\index{GPIOPinTypeGPIOOutput@{GPIOPinTypeGPIOOutput}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeGPIOOutput}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeGPIOOutput (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga9cc8ce67979d9a664631924d2c76c200}
Configures pin(s) for use as GPIO outputs.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The GPIO pins must be properly configured in order to function correctly as GPIO outputs; this is especially true of Fury-\/class devices where the digital input enable is turned off by default. This function provides the proper configuration for those pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gaa61f2a16bc997689df0b0d986f52a9a5}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeGPIOOutputOD@{GPIOPinTypeGPIOOutputOD}}
\index{GPIOPinTypeGPIOOutputOD@{GPIOPinTypeGPIOOutputOD}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeGPIOOutputOD}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeGPIOOutputOD (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gaa61f2a16bc997689df0b0d986f52a9a5}
Configures pin(s) for use as GPIO open drain outputs.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The GPIO pins must be properly configured in order to function correctly as GPIO outputs; this is especially true of Fury-\/class devices where the digital input enable is turned off by default. This function provides the proper configuration for those pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga88ea8b5c16662271b193895303ec6cde}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeI2C@{GPIOPinTypeI2C}}
\index{GPIOPinTypeI2C@{GPIOPinTypeI2C}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeI2C}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeI2C (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga88ea8b5c16662271b193895303ec6cde}
Configures pin(s) for use by the I2C peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The I2C pins must be properly configured for the I2C peripheral to function correctly. This function provides the proper configuration for those pin(s).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into an I2C pin; it only configures an I2C pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gaa917bfab3ec1625bc9023350dcd9feb3}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeI2S@{GPIOPinTypeI2S}}
\index{GPIOPinTypeI2S@{GPIOPinTypeI2S}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeI2S}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeI2S (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gaa917bfab3ec1625bc9023350dcd9feb3}
Configures pin(s) for use by the I2S peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
Some I2S pins must be properly configured for the I2S peripheral to function correctly. This function provides a typical configuration for the digital I2S pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a I2S pin; it only configures a I2S pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gabaeb01ce7fbd0193aeeee0755929ea3a}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypePWM@{GPIOPinTypePWM}}
\index{GPIOPinTypePWM@{GPIOPinTypePWM}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypePWM}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypePWM (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gabaeb01ce7fbd0193aeeee0755929ea3a}
Configures pin(s) for use by the PWM peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The PWM pins must be properly configured for the PWM peripheral to function correctly. This function provides a typical configuration for those pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a PWM pin; it only configures a PWM pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gaf4d91fac42c6efd3a9fce8b50fc87d36}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeQEI@{GPIOPinTypeQEI}}
\index{GPIOPinTypeQEI@{GPIOPinTypeQEI}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeQEI}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeQEI (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gaf4d91fac42c6efd3a9fce8b50fc87d36}
Configures pin(s) for use by the QEI peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The QEI pins must be properly configured for the QEI peripheral to function correctly. This function provides a typical configuration for those pin(s); other configurations may work as well depending upon the board setup (for example, not using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a QEI pin; it only configures a QEI pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga3c2922d6f70c115de388eec90abf5ace}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeSSI@{GPIOPinTypeSSI}}
\index{GPIOPinTypeSSI@{GPIOPinTypeSSI}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeSSI}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeSSI (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga3c2922d6f70c115de388eec90abf5ace}
Configures pin(s) for use by the SSI peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The SSI pins must be properly configured for the SSI peripheral to function correctly. This function provides a typical configuration for those pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a SSI pin; it only configures a SSI pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga35408a71b1bd133c27aa34191b3da369}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeTimer@{GPIOPinTypeTimer}}
\index{GPIOPinTypeTimer@{GPIOPinTypeTimer}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeTimer}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeTimer (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga35408a71b1bd133c27aa34191b3da369}
Configures pin(s) for use by the Timer peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The CCP pins must be properly configured for the timer peripheral to function correctly. This function provides a typical configuration for those pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a timer pin; it only configures a timer pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga9f154edbc4950ae73f29e15d48dc70da}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeUART@{GPIOPinTypeUART}}
\index{GPIOPinTypeUART@{GPIOPinTypeUART}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeUART}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeUART (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga9f154edbc4950ae73f29e15d48dc70da}
Configures pin(s) for use by the UART peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
The UART pins must be properly configured for the UART peripheral to function correctly. This function provides a typical configuration for those pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a UART pin; it only configures a UART pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gade2487a4670bf881a1ee901ec2be8174}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeUSBAnalog@{GPIOPinTypeUSBAnalog}}
\index{GPIOPinTypeUSBAnalog@{GPIOPinTypeUSBAnalog}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeUSBAnalog}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeUSBAnalog (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gade2487a4670bf881a1ee901ec2be8174}
Configures pin(s) for use by the USB peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
Some USB analog pins must be properly configured for the USB peripheral to function correctly. This function provides the proper configuration for any USB pin(s). This can also be used to configure the EPEN and PFAULT pins so that they are no longer used by the USB controller.

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a USB pin; it only configures a USB pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gabe5d9214a89e0190c8978461ffb2df45}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinTypeUSBDigital@{GPIOPinTypeUSBDigital}}
\index{GPIOPinTypeUSBDigital@{GPIOPinTypeUSBDigital}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinTypeUSBDigital}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinTypeUSBDigital (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gabe5d9214a89e0190c8978461ffb2df45}
Configures pin(s) for use by the USB peripheral.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s).\end{DoxyParams}
Some USB digital pins must be properly configured for the USB peripheral to function correctly. This function provides a typical configuration for the digital USB pin(s); other configurations may work as well depending upon the board setup (for example, using the on-\/chip pull-\/ups).

This function should only be used with EPEN and PFAULT pins as all other USB pins are analog in nature or are not used in devices without OTG functionality.

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyNote}{Note}
This cannot be used to turn any pin into a USB pin; it only configures a USB pin for proper operation.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga15dcc4b2c51372da20787277e3c617ee}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPinWrite@{GPIOPinWrite}}
\index{GPIOPinWrite@{GPIOPinWrite}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPinWrite}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPinWrite (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{unsigned char}]{ ucPins, }
\item[{unsigned char}]{ ucVal}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga15dcc4b2c51372da20787277e3c617ee}
Writes a value to the specified pin(s).


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em ucPins}]is the bit-\/packed representation of the pin(s). \item[{\em ucVal}]is the value to write to the pin(s).\end{DoxyParams}
Writes the corresponding bit values to the output pin(s) specified by {\itshape ucPins\/}. Writing to a pin configured as an input pin has no effect.

The pin(s) are specified using a bit-\/packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_ga4f50842991768a3e688e0cb6961057fb}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPortIntRegister@{GPIOPortIntRegister}}
\index{GPIOPortIntRegister@{GPIOPortIntRegister}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPortIntRegister}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPortIntRegister (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort, }
\item[{void($\ast$)(void)}]{ pfnIntHandler}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_ga4f50842991768a3e688e0cb6961057fb}
Registers an interrupt handler for a GPIO port.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port. \item[{\em pfnIntHandler}]is a pointer to the GPIO port interrupt handling function.\end{DoxyParams}
This function will ensure that the interrupt handler specified by {\itshape pfnIntHandler\/} is called when an interrupt is detected from the selected GPIO port. This function will also enable the corresponding GPIO interrupt in the interrupt controller; individual pin interrupts and interrupt sources must be enabled with \hyperlink{group__gpio__api_ga2e36f797627e0e969837e6d4d4295642}{GPIOPinIntEnable()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__interrupt__api_ga471d00d73ae22faa426c202f608e9c69}{IntRegister()} for important information about registering interrupt handlers.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__gpio__api_gac06dcf1c431a9685d90cc655a9da5293}{
\index{gpio\_\-api@{gpio\_\-api}!GPIOPortIntUnregister@{GPIOPortIntUnregister}}
\index{GPIOPortIntUnregister@{GPIOPortIntUnregister}!gpio_api@{gpio\_\-api}}
\subsubsection[{GPIOPortIntUnregister}]{\setlength{\rightskip}{0pt plus 5cm}void GPIOPortIntUnregister (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulPort}
\end{DoxyParamCaption}
)}}
\label{group__gpio__api_gac06dcf1c431a9685d90cc655a9da5293}
Removes an interrupt handler for a GPIO port.


\begin{DoxyParams}{Parameters}
\item[{\em ulPort}]is the base address of the GPIO port.\end{DoxyParams}
This function will unregister the interrupt handler for the specified GPIO port. This function will also disable the corresponding GPIO port interrupt in the interrupt controller; individual GPIO interrupts and interrupt sources must be disabled with \hyperlink{group__gpio__api_gae05d852b2639e559923e9f3273f2949e}{GPIOPinIntDisable()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__interrupt__api_ga471d00d73ae22faa426c202f608e9c69}{IntRegister()} for important information about registering interrupt handlers.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
